package cn.yza.设计模式.代理模式.动态代理.反射;

import java.lang.reflect.Method;

/**
 * @author Honglixi
 * @create 2021-11-01 16:08
 */
public class Test {
    public static void main(String[] args) throws Exception {
//        Hello hello = new HelloImpl();
//        hello.sayHello(":老八");

        //使用反射
        Hello target = new HelloImpl();
        Hello target2 = new HelloImpl2();
        //获取sayHello名称对应的Method类对象
        Method method = Hello.class.getMethod("sayHello", String.class);
        //通过Method可以执行sayHello方法的调用
        //invoke()表示代理对象要执行的功能代码
        Object ret = method.invoke(target2, "老九");

    }
}
